package cn.jbolt.core.json;

import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;

import java.io.IOException;
import java.lang.reflect.Type;
import java.math.BigDecimal;

public class BigDecimalSerializer implements ObjectSerializer {
    public static final BigDecimalSerializer instance = new BigDecimalSerializer();
    @Override
    public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
        SerializeWriter out = serializer.out;
        if (object == null) {
            out.writeNull();
            return;
        }
        String str = object.toString();
        if(str.contains("E")){
            out.writeString(((BigDecimal) object).toPlainString());
        }else{
            out.writeString(str);
        }
    }
}
